草庐IT

c++ - 切片 std::array

全部标签

java - 如何在 Java 中创建 C 风格的 union 体?

我必须将我的代码段之一从C转换为java。代码如下。unioncommandString{charcommndStr[20];struct{charcommnd[4];charseparator1;charagr1[5];charseparator2;chararg2[3];charseparator3;charadditionalArg[5];};};我不想使用任何显式解析器或者我不想使用System.arraycopy方法。有没有办法以我喜欢的方式做到这一点? 最佳答案 Java语言不像C语言那样直接支持union或直接控制内存

java - 处理/java : cannot invoke length() on the array type boolean[]

这个问题在这里已经有了答案:lengthandlength()inJava(8个答案)关闭7年前。很惊讶这还没有发布。我正在制作一个for循环,它以前工作过,但由于某种原因我找不到boolean数组的长度。for(intz=0;z

java - 查找一组给定数字的所有组合

假设我有一组数字“0”、“1”、“2”、...、“9”。我想找到恰好包含我的集合中每个数字之一的所有数字。问题是:在我开始我的程序之前,我不知道我的集合将包含多少个数字和哪些数字。(例如,集合可以包括数字“1”、“3”和“14”。)我在网上搜索了一下,偶然发现了“动态规划”这个词,它显然是用来解决像我这样的问题的,但我不明白这些例子。有人可以提示我如何解决这个问题(可能使用动态规划)吗?编辑:当集合包含像“14”这样的数字时,集合中的不同数字当然必须通过某种方式分开,例如当集合包含数字“1”、“3”和“14”时,组合可能类似于1-3-14或3-14-1(=由“-”字符分隔的单个数字)。

java - java.lang.reflect.Array 的 getter 和 setter 方法的目的是什么?

Java类java.lang.reflect.Array提供一组用于动态创建数组的工具。但是除此之外,它还有一整套用于访问(获取、设置和长度)数组的方法。我不明白这一点,因为您可以(并且可能会)在创建时将动态生成的数组转换为数组,这意味着您可以使用正常的数组访问(括号表示法)功能。事实上,查看源代码您可以看到类所做的所有事情,转换数组,并在转换失败时抛出异常。那么所有这些额外方法的意义/用途是什么?更新考虑到您需要知道类型数组,以便知道使用哪种方法。更新2谢谢大家,你们的意见很有教育意义!我真的看不出什么时候我会把这个类用于除newInstance()(也许还有getLength())

C# 相当于 Java 的 Arrays.fill() 方法

这个问题在这里已经有了答案:Howtopopulate/instantiateaC#arraywithasinglevalue?(26个答案)关闭8年前。我在Java中使用以下语句:Arrays.fill(mynewArray,oldArray.Length,size,-1);请推荐等效的C#。

java - 如何通过 JNI 将 HashMap 从 Java 发送到 C

我有一个Object,它有一个HashMap字段。当Object传递给C时,我如何访问该字段?Object的Class具有以下字段:privateStringhello;privateMapparams=newHashMap(); 最佳答案 您问题的答案实际上归结为为什么您要传递一个Map到C而不是迭代你的Map在Java中并将内容传递给C。但是,我有什么资格质疑为什么?你问如何访问HashMap(在您提供的代码中,Map)字段?用Java为它编写一个访问器方法,并在传递容器时从C调用该访问器方法Object.下面是一些简单的示例代

java - 序列化要由 Java 等反序列化的 C 结构的最佳方法

目前,我正在使用fread()/fwrite()将C/C++结构中的一些数据保存并加载到文件中。这在这个C应用程序中工作时工作得很好(每当结构更改以将sizeof()参数更新为fread()/fwrite()时我都可以重新编译),但是我如何在事先不知道的情况下将此文件加载到其他程序中C结构的sizeof()s?特别是,我编写了另一个Java应用程序来可视化该C结构二进制文件中包含的数据,但我想要一个关于如何读取该二进制文件的通用解决方案。(而不是我必须在C结构发生变化时手动将sizeof()s放入Java应用程序源中......)我正在考虑序列化为某种类型的文本或XML,但我不确定从哪

java - ASN.1 编码-解码

我目前正在开发一个客户端-服务器程序,Java/C中的客户端和C中的服务器。我必须传输加密数据(例如客户端应将数据传递给服务器以进行加密/解密、计算摘要等)并且服务器必须将结果返回给客户端。在这个场景中,我意识到使用一些传输协议(protocol)来识别数据并有效地传递数据的重要性。在这方面,我的问题是:ASN.1是一个很好用的协议(protocol)吗?我知道它受BC(在Java上)和OpenSSL在C上的支持。那么使用ASN.1表示法在客户端和服务器之间传输数据是个好主意吗?您能否也给我一些起点?另外,如果您对现有协议(protocol)有更好的了解,请告诉我。谢谢!!

Java Bean : Overglorified Associative Arrays?

我不太了解JavaBean的本质。好吧,至少我是如何看待它们用于我们商店的一些代码库中的。我发现了这个问题:JavaBeans:WhatamImissing?那里接受的答案看起来像是程序员倾向于滥用JavaBean(我真的不怀疑),但我看到它经常发生并且故意发生,我想我仍然遗漏了一些东西。我看到的代码如下:publicclassFooBean{privateinta;privateintb;privateintc;publicintgetA(){returna;}publicintsetA(intx){a=x;}//etc...}没有比getter和setter更进一步的结构或控制。是

Java 丢弃了一半的 UDP 数据包

我有一个简单的客户端/服务器设置。服务器在C中,查询服务器的客户端是Java。我的问题是,当我通过连接发送带宽密集型数据(例如视频帧)时,它会丢弃多达一半的数据包。我确保我在服务器端正确地分段了udp数据包(udp的最大有效负载长度为2^16)。我验证了服务器正在发送数据包(printfsendto()的结果)。但是java似乎没有得到一半的数据。此外,当我切换到TCP时,所有视频帧都通过了,但延迟开始增加,在几秒钟的运行时间后增加了几秒钟的延迟。有什么明显的我遗漏的吗?我就是想不通。 最佳答案 获取像Wireshark这样的网络工